package com.freemalll.merchant.domain.dto;

import io.swagger.v3.oas.annotations.media.Schema;
import jakarta.validation.constraints.NotBlank;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;

import java.util.List;
import java.util.Map;

/**
 * @author songshixiong
 * @ClassName AssetRateEditDto
 * @description:
 * @date 2025年05月19日
 * @version: 1.0
 */

@Data
@AllArgsConstructor
@NoArgsConstructor
public class MerchantRateDto {

    @Schema(description = "费率id")
    private String merRateId;

    @Schema(description = "商户id")
    private String merId;

    @Schema(description = "是否启用")
    private Boolean enableFlag;

    @Schema(description = "资方id")
    @NotBlank(message = "资方id不能为空")
    private String sourceId;

    @Schema(description = "资方名称")
    private String sourceName;

    @Schema(description = "关联费率id")
    @NotBlank(message = "关联费率id不能为空")
    private String rateId;

    @Schema(description = "模版编码")
    @NotBlank(message = "模版编码不能为空")
    private String templateCode;

    @Schema(description = "模版名称")
    @NotBlank(message = "模版名称不能为空")
    private String templateName;

    @Schema(description = "息费模式 COMMERCIAL_STICKERS:商贴 GUEST_POST：客贴 INTEREST_PER_MENS：月息 BUSINESS_MONTH：商月")
    @NotBlank(message = "息费模式不能为空")
    private String interestAndFeeModel;

    @Schema(description = "息费模式名称")
    private String interestAndFeeModelName;

    @Schema(description = "息费模式详细 COMMERCIAL_STICKERS:商贴 GUEST_POST：客贴 INTEREST_PER_MENS：月息")
    @NotBlank(message = "息费模式详细不能为空")
    private String interestAndFeeDetailModel;

    @Schema(description = "支持资方")
    private String supportPeriods;

    @Schema(description = "3期")
    private MerchantRateDetailDto phaseThere;

    @Schema(description = "6期")
    private MerchantRateDetailDto phaseSix;

    @Schema(description = "9期")
    private MerchantRateDetailDto phaseNine;

    @Schema(description = "12期")
    private MerchantRateDetailDto phaseTwelve;

    @Schema(description = "18期")
    private MerchantRateDetailDto phaseEighteen;

    @Schema(description = "24期")
    private MerchantRateDetailDto phaseTwentyFour;

    @Schema(description = "36期")
    private MerchantRateDetailDto phaseThirtySix;

    @Schema(description = "支持息费模式")
    private List<Map<String, Object>> supportInterestAndFeeModelList;

}
